『資訊長,我們來看一下mod_security.conf 裡,一些基本的設定好了,有一個很特別,這個先講好了。在mod_security.conf裡,有一個設定是,回應目前Apache的版本,這個設定是
SecServerSignature "願時光匆匆流去...我只在乎妳"
但,如果字數太多或設定不對,則會出現錯誤訊息,導致Apache無法起動。
錯誤訊息是SecServerSignature: original signature too short. Please set ServerTokens to Full.』
「等一下,你那是什麼好笑的錯誤訊息? 一般人,不會看到這個吧?」
『神之手沒聽過嗎? 我常常遇到連原廠工程師,都沒遇到過的狀況...』
「這有什麼好得意的,你看你那表情,很好笑耶。」
『不要我笑,難不成我要哭嗎? 好啦,講Apache啦...總之,在httpd.conf裡有一個設定,ServerTokens,這個可以讓我們決定要顯示多少資訊。
#ServerTokens Prod
#ServerTokens Major
#ServerTokens Minor
#ServerTokens Min
#ServerTokens OS
ServerTokens Full
妳看畫面,大概就是這樣的呈現。』
「也就是說,如果你的Apache版本字數太長,就會看到你說的錯誤訊息,然後ServerTokens 就要設定Full? 真的是夠了...沒關係,原諒你,繼續。」
『然後,再來是
#預設就有的這兩行
IncludeOptional modsecurity.d/*.conf
IncludeOptional modsecurity.d/activated_rules/*.conf
妳在CentOS下,用yum安裝好mod_security後,這兩行也會出現在mod_security.conf裡,而且是最上面的兩行。另外,安裝過程中,也會建立activated_rules這個資料夾。』
「那很方便啊,安裝好之後,就能用了,不錯啊。」
『不,它只是幫妳建立,但裡面是空的。』
「空的? 為什麼不放設定進去?」
『活在自由民主的資本主義社會裡,原廠怎麼可以侵佔我們的人權,當然是我們自己選擇要放什麼啊...
不過,安裝過程中,會建另一個資料夾,叫做owasp-modsecurity-crs 這裡面,會有已經設定好,給mod_security使用的Rule(規則),我們可以把這裡面的規則,複製一份到activated_rules裡。』
「然後就能用了?」
『還是不行耶...』
「先生,你一次講完好不好,很煩耶。」
『資訊長,要有點耐心啊,不然妳可以自己開發啊,妳愛怎麼訂建置規則,就怎麼訂。總之,這個owasp-modsecurity-crs資料夾裡面的Rule是由OWASP這個非營利組織提供的,針對前十大資安風險,提供出來的規則。
所以,還需要再搬移一個crs-setup.conf,到**/etc/httpd/conf.d**下面,搬過去之後,重新起動Apache,就算是設定完成了。
如果想要確定,Apache是不是真的有載入mod_security,可以去看phpinfo,裡面會出現mod_security。』
「哇,載入了耶..」
『再來就是,在crs-setup.conf裡,有兩個規則,可以分別設定,放行或拒絕。
#符合階段一,記錄,放行
SecDefaultAction "phase:1,log,auditlog,pass"
#符合階段二,記錄,放行
SecDefaultAction "phase:2,log,auditlog,pass"
#符合階段一,記錄,拒絕連線,回應403
SecDefaultAction "phase:1,log,auditlog,deny,status:403"
#符合階段二,記錄,拒絕連線,回應403
SecDefaultAction "phase:2,log,auditlog,deny,status:403"
請問資訊長,階段一和階段二,是什麼?』
「又問我? 我知道嗎?」
『知道...妳不是才講出來嗎?』
「階段一...階段二...我知道了,Request Header,Request Body...」
『哇,妳真的知道! 好啦,再問妳,剛安裝並載入mod_security之後,請問,是先阻擋還是先放行?』
「你這樣問的話...我覺得最後可能是加起來除以2,就是可能先放行,觀察一下,再做rule的調整,然後再阻擋。 對嗎?」
『差不多吧,我們在練習時,可以通通擋或通通開,但要看一下記錄。真正在運作時,如果這樣搞,妳們有錢銀行,可能會被罵翻天哦.......』
「我們? 不包含你嗎?」
『我是有錢集團請來的,不是有錢銀行請來的......繼續妳講到這個,那再問妳
httpd.conf、mod_security.conf和crs-setup.conf,請問有什麼關係?』
「想一下,等等...httpd.conf 載入 mod_security.conf ,mod_security.conf 再載入 crs-setup.conf,其實就是一個檔案,但分三個區塊來處理?」
『差不多吧,看妳是從系統的角度看,還是開發人員的角度看...下班啦,龍山寺,走吧。』
「你剛說去那裡? 你是不是太累了,忘了應該是我們要去的地方? 」
『呃...淡水...淡水,太累太累了。』
「小心我真的把你手機給摔爛......然後,再買隻新的送你...講到這個,我發現你變了耶,你之前裝那個Android版的Kali Linux,沒有root,你就裝了體驗版的...我印象中的你,不是這樣就算了的人耶。」
『對啊,我不知道怎麼root自己的HTC手機,但我還是裝好了,完整版的Kali Linux 在我的HTC U11 Ultra裡...』
「你看吧,你變.........等一下,你說你不會root自己的手機,但你裝好了? 怎麼裝?」
『付費請人幫我root就好啦......』
「裝好了? 完整版? 和我們裝在VM裡的一樣?」
『不然怎麼叫完整版? 妳看這CPU,不一樣吧...』
「真的耶...我買隻新手機給你,你那就給我用吧,我委曲一點...讓你再教我多一點好了,不過廢話要少一點哦。」
(待)
2019/09/21 SunAllen